 import clientFetcher from './client';
 import errorFetcher from './error';
 import perfFetcher from './perf';
 import userFetcher from './user';

 export default function(config, poster) {
    if (config.client) {
        // 启用终端信息采集
        clientFetcher(poster);
    }

    if (config.perf) {
        if (PerformanceObserver) {
            const ob = new PerformanceObserver((list) => {
                window.PERFTIMEER && clearTimeout(window.PERFTIMEER);
                if (list.getEntries().length) {
                    window.PERFTIMEER = setTimeout(() => {
                        // 如果在一定时间内没有再获取到资源请求的条目，即3秒钟内定时器没有被清除
                        // 则发起上传程序
                        perfFetcher(poster);
                    }, 3000);
                }
            });
            ob.observe({ entryTypes: ['navigation']});
        } else {
            window.addEventListener('unload', () => {
                perfFetcher(poster);
            }, false);
        }
    }

    if (config.error) {
        // 启用异常信息采集
        errorFetcher(config, poster);
    }

    if (config.user) {
        // 启用异常信息采集
        userFetcher(poster);
    }
 }